package com.tedu.api.ee;

import org.junit.Test;

import java.io.*;

/**考试题：throw与throws的区别
 *异常关键字：throw--主动抛出异常
 *           语法：定义在方法体中，如果执行throw，一定抛出异常对象RunTimeException
 *                 指定主动抛出异常对象名字
 *                 throw new RunTimeException()
 *                 特点：定义异常，原因程序不合理
 *
 *          throws--抛出异常不解决  【被动抛出异常】
 *          语法：定义在单元方法或者“主方法”后面
 *          异常对象名称，多个异常对象逗号分隔
 *          throw IOException,Exception
 *          特点：抛出异常中存在较大的异常：小异常去掉，包括小异常
 *               抛出异常都是同等级：小异常
 *
 *RunTimeException 运行期异常：①主动产生异常
 *                           ②控制台产生异常
 *
 *
 */
public class Person {
    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {//设置年龄：0-120岁，主动抛出异常
        if(age<0||age>120){//如果这个人的年龄超出0-120之间--主动抛出异常【true】
            throw new RuntimeException("年龄不合规");
        }
        this.age = age;
    }

    public static void main(String[] args) {
        Person p=new Person();
        p.setAge(120);
        System.out.println("我的年龄是"+p.getAge()+"岁");
    }
}
